<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Clientes extends CI_Controller {

    private $establecimiento;

    public function __construct() {
        parent::__construct();
        session_start();
        $this->estaLogueado();
        $this->load->model('clienteM');
        $this->load->model('paisM');
        $this->load->model('documentoM');
        $this->establecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
    }

    public function index() {
        $data = array();
        $this->loadData($data);
        // var_dump($data['clientes']);
        $this->load->view('header', $data);
        $this->load->view('clientesV');
        $this->load->view('footer');
    }

    public function loadData(&$data) {
        $this->escapar($_GET);
        $data["tab"] = "clientes";
        $filasPorPagina = 20;
        if (empty($_GET["page"])) {
            $inicio = 0;
            $paginaActual = 1;
        } else {
            $inicio = ($_GET["page"] - 1) * $filasPorPagina;
            $paginaActual = $_GET["page"];
        }
        $data["documentos"] = $this->documentoM->obtenerDocumentos();
        $data['paginaActiva'] = $paginaActual;
        $cantidadClientes = $this->clienteM->contarClientes($this->establecimiento, $_GET);
        $cantidadClientes = $cantidadClientes[0]->cantidad;
        $data['cantidadClientes'] = $cantidadClientes;
        $data['paises'] = $this->clienteM->getListaPaises();
        $data['cantidadPaginas'] = ceil($cantidadClientes / $filasPorPagina);
        $data['clientes'] = $this->clienteM->obtenerClientes($this->establecimiento, $filasPorPagina, $inicio, $_GET);
        foreach ($data['clientes'] as $clientes) {
            $this->formatoFechaVista($clientes->fecha_nacimiento);
        }
    }

    public function crearCliente() {
        $this->escapar($_POST);
        if (empty($_POST["nombreCliente"]) && empty($_POST["nombreEmpresa"])) {
            $_SESSION["mensaje"]["contenido"] = "Intentalo nuevamnete";
            $_SESSION["mensaje"]["tipo"] = "advertencia";
            header("location:../clientes");
            exit();
        }
        $tipo = ($_POST['quien'] == 'persona') ? 1 : 2;
        if ($tipo == 1) {
            $nacionalidad = $_POST["nacionalidadCliente"];
            $identificacion = $_POST["identificacionCliente"];
        } else {
            $nacionalidad = $_POST["paisEmpresa"];
            $identificacion = $_POST["identificacionEmpresa"];
        }

        $cliente = $this->clienteM->cargarCliente($identificacion, $nacionalidad, $tipo);
        if (sizeof($cliente) == 0) {
            if ($_POST['fechaNacimiento'] != "") {
                $this->formatoFechaBD($_POST['fechaNacimiento']);
            }
            if ($tipo == 1)
                $this->clienteM->crearClientePersona($_POST['identificacionCliente'], $_POST['nacionalidadCliente'], $_POST['tipoDocumento'], $_POST['nombreCliente'], $_POST['primerApellido'], $_POST['segundoApellido'], $_POST['genero'], $_POST['fechaNacimiento'], $_POST['telefono'], $_POST['email'], $_POST['ocupacion'], $_POST['direccion'], $_POST['nota']);
            else
                $this->clienteM->crearClienteEmpresa($_POST['identificacionEmpresa'], $_POST['paisEmpresa'], $_POST['nombreEmpresa'], $_POST['telefonoEmpresa'], $_POST['direccionEmpresa'], $_POST['emailEmpresa']);

            $_SESSION["mensaje"]["contenido"] = "Cliente creado exitosamente";
            $_SESSION["mensaje"]["tipo"] = "exito";
        } else {
            $nacionalidad = $this->paisM->obtenerNombre($nacionalidad);
            $_SESSION["mensaje"]["contenido"] = "El clinte con el documento: {$identificacion} y de nacionalidad: $nacionalidad ya existe";
            $_SESSION["mensaje"]["tipo"] = "advertencia";
        }

        header("location:../clientes");
    }

    public function actualizarCliente() {
        $tipo = ($_POST['quien'] == 'persona') ? 1 : 2;
        if ($_POST['fechaNacimiento'] != "") {
            $this->formatoFechaBD($_POST['fechaNacimiento']);
        }
        if ($tipo == 1) {
            if ($_POST['nacionalidadCliente'] != "" && $_POST['identificacionCliente'] != "") {
                $cliente = $this->clienteM->cargarCliente($_POST['identificacionCliente'], $_POST['nacionalidadCliente'], $tipo);
                if (sizeof($cliente) == 0 || $cliente[0]->id_cliente == $_POST['idCliente']) {
                    $this->clienteM->actualizarClientePersona($_POST['idCliente'], $_POST['identificacionCliente'], $_POST['nacionalidadCliente'], $_POST['tipoDocumento'], $_POST['nombreCliente'], $_POST['primerApellido'], $_POST['segundoApellido'], $_POST['genero'], $_POST['fechaNacimiento'], $_POST['telefono'], $_POST['email'], $_POST['ocupacion'], $_POST['direccion'], $_POST['nota']);
                    $_SESSION["mensaje"]["contenido"] = "Cliente actualizado exitosamente";
                    $_SESSION["mensaje"]["tipo"] = "exito";
                } else {
                    $nacionalidad = $this->paisM->obtenerNombre($_POST['nacionalidadCliente']);
                    $_SESSION["mensaje"]["contenido"] = "El clinte con el documento: {$_POST['identificacionCliente']} y de nacionalidad: {$nacionalidad} ya existe";
                    $_SESSION["mensaje"]["tipo"] = "advertencia";
                }
            } else {
                $this->clienteM->actualizarClientePersona($_POST['idCliente'], $_POST['identificacionCliente'], $_POST['nacionalidadCliente'], $_POST['tipoDocumento'], $_POST['nombreCliente'], $_POST['primerApellido'], $_POST['segundoApellido'], $_POST['genero'], $_POST['fechaNacimiento'], $_POST['telefono'], $_POST['email'], $_POST['ocupacion'], $_POST['direccion'], $_POST['nota']);
                $_SESSION["mensaje"]["contenido"] = "Cliente actualizado exitosamente";
                $_SESSION["mensaje"]["tipo"] = "exito";
            }
        } else {
            if ($_POST['paisEmpresa'] != "" && $_POST['identificacionEmpresa'] != "") {
                $cliente = $this->clienteM->cargarCliente($_POST['identificacionEmpresa'], $_POST['paisEmpresa'], $tipo);
                if (sizeof($cliente) == 0 || $cliente[0]->id_cliente == $_POST['idCliente']) {
                    $this->clienteM->actualizarClienteEmpresa($_POST["idCliente"], $_POST["identificacionEmpresa"], $_POST["paisEmpresa"], $_POST["nombreEmpresa"], $_POST["telefonoEmpresa"], $_POST["direccionEmpresa"], $_POST["emailEmpresa"]);
                    $_SESSION["mensaje"]["contenido"] = "Cliente actualizado exitosamente";
                    $_SESSION["mensaje"]["tipo"] = "exito";
                } else {
                    $nacionalidad = $this->paisM->obtenerNombre($_POST['paisEmpresa']);
                    $_SESSION["mensaje"]["contenido"] = "La empresa con el documento: {$_POST['identificacionEmpresa']} y de nacionalidad: {$nacionalidad} ya existe";
                    $_SESSION["mensaje"]["tipo"] = "advertencia";
                }
            } else {
                $this->clienteM->actualizarClienteEmpresa($_POST["idCliente"], $_POST["identificacionEmpresa"], $_POST["paisEmpresa"], $_POST["nombreEmpresa"], $_POST["telefonoEmpresa"], $_POST["direccionEmpresa"], $_POST["emailEmpresa"]);
                $_SESSION["mensaje"]["contenido"] = "Cliente actualizado exitosamente";
                $_SESSION["mensaje"]["tipo"] = "exito";
            }
        }
        header("location:../clientes");
    }

    public function eliminarCliente() {

        $esMiCliente = $this->clienteM->esMiCliente($_POST["idCliente"], $_SESSION["establecimiento"]["id_establecimiento"]);
        if ($esMiCliente[0]->cantidad == 1) {
            $this->clienteM->eliminarCliente($_POST["idCliente"], $_SESSION["establecimiento"]["id_establecimiento"]);
            $_SESSION["mensaje"]["contenido"] = "Cliente eliminado exitosamente";
            $_SESSION["mensaje"]["tipo"] = "exito";
        } else {
            $_SESSION["mensaje"]["contenido"] = "Intentalo nuevamente";
            $_SESSION["mensaje"]["tipo"] = "advertencia";
        }
        header("location:../clientes");
    }

}

